Tovid changelog/upcoming
The following changes will be in the upcoming release of tovid, to be called version 0.29. If you want to take advantage of these features now (or help test them), you can download a quick release or install from SVN. Overview of 0.29 This is mainly another bugfix-and-tweak release, with a few nice feature additions including multitrack audio encoding and todisc showcase templates. Efficiency and quality has been improved in a few places, and you'll be seeing fewer cryptic temporary directory names. Major bugs fixed include numerous media-handling problems in makedvd, the "Bad substitution" error on Ubuntu, and the "Cannot find button N" error with menus. libtovid has seen some slow progress, but not much to show for itself this time around. Executables All shell scripts now call bash through /usr/bin/env, to avoid portability problems on platforms where bash is not the default shell. tovid * Fixed bug with ''-ffmpeg'' not honoring the ''-overwrite'' flag * Statfile $ENC_PER_MIN (encoding time in seconds per minute of video) changed to $ENC_TIME_RATIO (ratio of encoding time to video duration, 1.0 realtime encoding). * Fixed letterboxed interlaced encoding, simplified video filtering code * ''-crop'' option added, taking the same argument as mplayer's ''-vf crop'' filter. Useful for removing existing letterbox bars * ''-v''/''-version'' option fixed to print version number only * ''-interlaced'' and ''-deinterlace'' now supported with ''-ffmpeg'' * Internal ''-quality'' handling tweaked so ''-ffmpeg'' produces better-quality (and larger) output, more comparable to mpeg2enc's * Several bitrate fixes for ''-ffmpeg'': VCD bitrate now compliant; audio/video bitrates now using explicit 'k' suffix; explicit audio bitrate now honored for all formats supporting it * Added ''-progressive'' option, synonymous with ''-deinterlace'' * Print error for unexpected command-line options * Added ''-audiotrack'' option for encoding a specific audio track, or several audio tracks in a user-defined order todisc * added -showcase-image and -showcase-video style menus: thumbs at side with larger "showcase" image in centre - maximum 10 videos ! * added -showcase-no-thumb for using the showcase style of thumb buttons but no image in the centre. * added -showcase-titles-align east|west for aligning titles starting at either the left or right edge of the thumb in the showcase style. "east" allows for multiline titles. * added -rotate DEGREES which will allow rotating of showcase-image|-video * added -wave default|GEOMETRY which will add a gentle warp to the showcase image|video * added -showcase-framestyle glass: "glass" frames using mplayer and a -vf filter with a big speed up if used without showcase image|video or thumb processing ( ie. no rotate or wave or mask shape ) * added -chain-videos to allow jumping to next title after play * added -noask for running script unattended with no prompting * added "Play All" button * added -tile3x1 which will produce a montage of 3 thumbs across instead of a row of 2 and a row of 1 * added -textmenu option which will call makemenu to make text only menu * added -subtitles LANGCODE to associate subtitle streams with language codes. * added -audio-lang "channel channel . . ." to set a default audio channel associated with each video * added -showcase-seek to allow seperate -seek value for the showcase-video ( see -seek below ) * -seek now takes multiple values, one for each video, or you can just give 1 value for all * use tcdemux and --nav_seek to speed up chapter image creation - huge speedup * "progress" spinner for creating nav_seek log * Change 72x54 to 80x60 to avoid transcode segfault Only affects more than 20 videos * remove $REAL_WORK_DIR on aborted preview unless -keepfiles * fix for sloppy hightlight/select images * fixed static menu creation when using -opacity * fix for clips shorter than animated menu length * many small improvements and bug fixes, and some new bugs too no doubt ! makemenu * Remove png8: qualifier from intermediate output images; was causing problems with some versions of ImageMagick (ultimately resulting in a "Cannot find button N as referenced by subtitle" error from dvdauthor) * Use temporary working directory for intermediate files, instead of makemenu.$PID clutter in current directory idvid * Allow use of URI-style input files, as in dvd://1 or http://path/to/file.avi. (No promises about the accuracy of the results, though...) * Saner temp-dir creation * Better aspect-ratio calculation, using tcprobe if possible, and mplayer as a fallback. Should report aspect of MPEG files correctly now. * Print information about multiple audio tracks (if present), including ffmpeg and mplayer track ID numbers makexml * Fixed errant "EOF" text bug with -group/-endgroup * sedprep function to simplify string replacement * Added nopanscan option to prevent some DVD players from cropping the edges of widescreen videos when played on a 4:3 TV tovid-init * Added tempdir function, to replace standard mktemp utility. Temporary directories for tovid (and other scripts) are now named like outfile.3 instead of outfile.d5c7Ah (while still being unique, to allow concurrent sessions) makedvd * Fixed bugs with re-authoring and error-handling * Improved blank disc detection and disc-blanking tovid-stats * ''-match'' option added, for printing records where a field matches a given value libtovid The Cairo branch was merged with the trunk. Here is a summary of the merge (from the SVN commit message): Merge of the tovid-pycairo branch. From revision 1052 to 1200, back into the main line. Summary of changes since then: * Cairo is now the main drawing back-end. * Effect/Flipbook modules completel ported to the new backend. * Added FadeInOut(), and Whirl() animation effects. * Separated effects in before() and after() calls. Deals with the Cairo paradigm better, offers more possibilities. * Added Doxygen documentation (requires doxygen 1.4.7+) * Flipbook now sets up drawable size and also aspect ratio scaling according to tvsys/format * Moved encode_audio() from encoders/mpeg2enc.py to encoders/common.py ... still need work in structing those areas * Text layer (and text drawing in the Cairo back-end), can be left, centered, or right aligned. * Predicting text layout is possible due to interaction with the Cairo library * Added scaling factors to standards.py, to deal with rectangular pixels on TVs, etc.. * A full test-suite using PyUnits was added To see everything in action, run the flipbook demo: * libtovid/flipbook.py - outputs in /tmp/flipbook.m2v a demonstration video. You can grab the demo (in Ogg/Theora) right here. It's the same video looped 5 times. render/cairo_.py The Cairo backend allows for plenty of exciting drawing commands, as well as the benefit of a get/set library (in contrast with the script-oriented MVG backend). a link to compiled documentation of cairo_.py To compile documentation, run `doxygen` in the `libtovid/docs` subdirectory. Doxygen 1.4.7+ required. layer.py * Added ColorBars layer for rendering standard SMPTE color bars opts.py * String, integer, and floating-point command-line arguments converted to proper type pydvdauthor There is a new project in the tovid SVN repository. It's called pydvdauthor, or python-dvdauthor. It is in fact an object-oriented approach to creating a dvdauthor .xml file. Example usage: disc = dvdauthor.Disc('This is my whole DISC!') vmgm = dvdauthor.VMGM('This is a VMGM menu') titleset1 = dvdauthor.Titleset('This is my first Titleset') titleset2 = dvdauthor.Titleset('This is my second Titleset') disc.set_vmgm(vmgm) disc.add_titleset(titleset1) disc.add_titleset(titleset2) title1 = dvdauthor.Title('This is a title') title2 = dvdauthor.Title('This is a second title') title3 = dvdauthor.Title('This is my third title') menu1 = dvdauthor.Menu('This is a first menu') menu2 = dvdauthor.Menu('This is a second menu') menu3 = dvdauthor.Menu('This is a third menu, in fact the VMGM one') titleset1.add_menu(menu1) titleset1.add_title(title1) titleset2.add_menu(menu2) titleset2.add_title(title2) titleset2.add_title(title3) vmgm.add_menu(menu3) menu2.set_post_commands('jump titleset %s title %s' % (titleset2.id, title2.id)) title1.add_video_file('/tmp/title1_video1.mpg') title2.add_video_file('/tmp/title2_video1.mpg') title3.add_video_file('/tmp/title3_video1.mpg') menu1.add_video_file('/tmp/menu1_video1.mpg') menu2.add_video_file('/tmp/menu2_video1.mpg') menu1.add_video_file('/tmp/menu1_video2.mpg') print "XML output:" print(disc.render_xml('/tmp/output-dir')) Excerpt from the testdvdauthor.py test suite. You can sip out of the SVN this brand new module with: svn co https://svn.sourceforge.net/svnroot/tovid/trunk/pydvdauthor To install, issue: python setup.py install To create an RPM, issue: python setup.py bdist_rpm Have fun!